package com.jack.design_patterns.creational.single;

/**
 * 单例模式-静态内部类
 *  优点：
 *      1.通过类加载机制保证初始化实例只有1个线程
 *      2.延迟创建实例，被调用时才去加载静态内部类完成实例化操作
 *      3.保证线程安全，jvm保证线程安全性，类初始化时其他线程无法进入
 *      4.效率高
 */
public class StaticInnerClassSingleton {

    private StaticInnerClassSingleton() {

    }

    public static class InnerClassSingleton {
        private final static StaticInnerClassSingleton INSTANCE = new StaticInnerClassSingleton();
    }

    public static StaticInnerClassSingleton getInstance() {
        return InnerClassSingleton.INSTANCE;
    }
}
